namespace EyeOpen.Domain.Repositories
{
	using System;
	using System.Linq;

	public interface IRepository<T>
		: IQueryable<T>
		where T : class, IAggregateRoot
	{
		void Add(T entity);

		bool Remove(T entity);

		void Update(T entity);

		T GetByKey(IComparable key);
	}
}